"""
# 在自动化测试中, 很少会用到模块级别方法, 因此了解即可!
Fixture 模块级别(了解)
1. 初始化(前置处理):
    def setUpModule() --> 首先自动执行
2. 销毁(后置处理):
    def tearDownModule() --> 最后自动执行
3. 运行于整个模块文件的始末，即：整个模块文件只会运行一次setUpModule和tearDownModule

执行流程：
    setUpModule()
    setUpClass()
    setUp() -> 测试方法1 -> tearDown()
    setUp() -> 测试方法2 -> tearDown()
    tearDownClass()
    tearDownModule()
"""

import unittest


def setUpModule():
    print('模块前置')


def tearDownModule():
    print('模块后置')


class TestDB(unittest.TestCase):
    """数据库测试类"""

    @classmethod
    def setUpClass(cls) -> None:
        print('类前置：连接数据库')

    @classmethod
    def tearDownClass(cls) -> None:
        print('类后置：断开数据库')

    def setUp(self) -> None:
        print('方法前置：插入数据')

    def tearDown(self) -> None:
        print('方法后置：删除前面插入的数据')

    def test_data1(self):
        """查询数据库方法"""
        print('执行查询语句->基本查询11111')

    def test_data2(self):
        """查询数据库方法"""
        print('执行查询语句->连接查询22222')
